DS.TaskList — JEDEN výpis úkolů pro celou aplikaci: obchod, projekt, osoba i schůzka jsou tentýž vzor, liší se jen šířkou plochy. Úzké (drawer / boční panel) = řešitel jen jako avatar; široké (detail) = avatar + jméno jako entity reference. Jedna řádková anatomie: hairline řádek = kulatý checkbox (accent) · text úkolu + počty (komentáře / přílohy / podúkoly) · termín (Dnes = warning, po termínu = critical) · řešitel. Hotové úkoly se automaticky řadí na konec seznamu — stabilně (jinak původní pořadí), na každé úrovni stromu, živě při odškrtnutí. Podúkoly = strom — stejný řádek, jen odsazený, rozbalování do maxDepth (hlubší úrovně jen jako počty). Dole ghost Přidat úkol. Nahoře volitelný progres. Skupiny (groups) přidávají lišty s počty a progress barem a AI návrhy — v klidu bez tlačítek, hover / fokus odhalí Zamítnout · Upravit · Schválit jako overlay přes pravý okraj řádku s jemným fade — termín, řešitel ani sloty referencí se neskrývají a neposouvají. Třetí šířkový režim plné (width="full", JEN přehled /tasks — breakpoint je viewport media query): tentýž řádek edge-to-edge + JEDEN slot Provázané (entity za sebou: obchod první — podúkol bez vlastního dědí rodičovský ztlumeně; pak kontakty, kruh = osoba, čtverec = firma, 2 viditelné + tiché „+N", nikdy se nedědí) + tiché záhlaví sloupců (sticky); bez jediné reference jedna tichá pomlčka, žádný placeholder. Pod 1101 px se plné samo sklopí do širokého. Načítání, chyba i prázdno jsou součástí komponenty. Úkol nemá název a popis — řádek renderuje jediné textové pole úkolu v jedné řádce (reference @ jako prostá jména, chip se ve výpisu nerozbaluje); prop title se přejmenuje na text (kanon: karta Dialog úkolu).

props: progress · pct · tasks:[{ title, done, owner:"Jméno"|{i,hue,name?}, due, now, over, comments, attachments, subtasks:[…], links:[{ type:"deal"|"person"|"company", id, label }] }] · groups:[{ label, suggested?, progress?, items:[…], onApprove, onDismiss, onEdit }] · maxDepth · addLabel · width:"narrow"|"wide"|"full" · onOpenRef(link) · loading · error · onRetry